const express = require( 'express' );
const app = new express();

// app.all('*', ( req, res, next ) => {
//   if( req.path === '/demo' ){
//     next()
//   }else{
//     res.json({
//       message: 'error'
//     });
//   }
//   // res.json({
//   //   message: 'app.all',
//   //   method: req.method.toLowerCase(),
//   //   path: req.path
//   // });
// })

// 路由区分
// 1. 通过请求方法 get post delete put options
// 2. 通过请求 path
app.get('/demo', (req, res) => {
  res.json({
    message: `hello world ${ req.method }`
  })
})

app.post('/demo', (req, res) => {
  res.json({
    message: `hello world ${ req.method }`
  })
})

app.get( '/user/byname', ( req, res ) => {
  const { name } = req.query;


  res.json({
    name
  })
})

app.post('/user/byid', ( req, res ) => {
  const { id } = req.query;
  res.json({
    id
  });
})
// 按照接口崇明调用的顺序，一旦触发则直接返回可以做拦截器使用
// 未匹配到的接口
app.all('/all', ( req, res ) => {
  res.json({
    message: 'app.all',
    method: req.method.toLowerCase()
  });
})

// 如果接口不存在会进入 通配符匹配
app.all('*', ( req, res ) => {
  res.json({
    message: 'app.all',
    method: req.method.toLowerCase(),
    path: req.path
  });
})




app.listen( 8080, () => {
  console.log( 'Server Start Successful 127.0.0.1:8080' );
});